package es.manuel.maa.taglib;

import javax.faces.component.UIComponent;
import javax.faces.webapp.UIComponentELTag;

/**
 * Tag para manejar las css
 */
public class CssTag extends UIComponentELTag {

	/**
	 * Tipo del componente.
	 */
	private static final String CSS_COMP_TYPE = "es.manuel.CssComponent";

	/**
	 * href
	 */
	private String href;

	/**
	 * rel
	 */
	private String rel;

	/**
	 * type
	 */
	private String type;

	/**
	 * Devuelve el href
	 * 
	 * @return href
	 */
	public String getHref() {
		return href;
	}

	/**
	 * Asigna el href
	 * 
	 * @param href
	 *            href
	 */
	public void setHref(String href) {
		this.href = href;
	}

	/**
	 * Devuelve el rel
	 * 
	 * @return rel
	 */
	public String getRel() {
		return rel;
	}

	/**
	 * Asigna el rel
	 * 
	 * @param rel
	 *            rel
	 */
	public void setRel(String rel) {
		this.rel = rel;
	}

	/**
	 * Devuelve el tipo
	 * 
	 * @return tipo
	 */
	public String getType() {
		return type;
	}

	/**
	 * Asigna el tipo
	 * 
	 * @param type
	 *            tipo
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * Devuelve el tipo de componente
	 */
	@Override
	public String getComponentType() {
		return CSS_COMP_TYPE;
	}

	/**
	 * Devuelve el tipo de renderer.
	 */
	@Override
	public String getRendererType() {
		return null;
	}

	/**
	 * Asigna las propiedades.
	 * 
	 * @param componentcomponente
	 */
	protected void setProperties(UIComponent component) {
		super.setProperties(component);

		if (href != null) {
			component.getAttributes().put("href", href);
		}
		if (rel != null) {
			component.getAttributes().put("rel", rel);
		}
		if (type != null) {
			component.getAttributes().put("type", type);
		}
	}

	/**
	 * Libera el objeto
	 */
	@Override
	public void release() {
		super.release();
		this.href = null;
		this.rel = null;
		this.type = null;
	}

}
